/*
 * Some lookup tables of powers of 2, used for describing the number of
 * hosts or networks in a given group.
 * XXX This isn't really well suited for localization...
 */

#ifndef __LIBCIDR__POW2_P_H
#define __LIBCIDR__POW2_P_H

/* Powers of two */
static const char *__cidr_pow2[] = {
	"1",
	"2",
	"4",
	"8",
	"16",
	"32",
	"64",
	"128",
	"256",
	"512",
	"1,024",
	"2,048",
	"4,096",
	"8,192",
	"16,384",
	"32,768",
	"65,536",
	"131,072",
	"262,144",
	"524,288",
	"1,048,576",
	"2,097,152",
	"4,194,304",
	"8,388,608",
	"16,777,216",
	"33,554,432",
	"67,108,864",
	"134,217,728",
	"268,435,456",
	"536,870,912",
	"1,073,741,824",
	"2,147,483,648",
	"4,294,967,296",
	"8,589,934,592",
	"17,179,869,184",
	"34,359,738,368",
	"68,719,476,736",
	"137,438,953,472",
	"274,877,906,944",
	"549,755,813,888",
	"1,099,511,627,776",
	"2,199,023,255,552",
	"4,398,046,511,104",
	"8,796,093,022,208",
	"17,592,186,044,416",
	"35,184,372,088,832",
	"70,368,744,177,664",
	"140,737,488,355,328",
	"281,474,976,710,656",
	"562,949,953,421,312",
	"1,125,899,906,842,624",
	"2,251,799,813,685,248",
	"4,503,599,627,370,496",
	"9,007,199,254,740,992",
	"18,014,398,509,481,984",
	"36,028,797,018,963,968",
	"72,057,594,037,927,936",
	"144,115,188,075,855,872",
	"288,230,376,151,711,744",
	"576,460,752,303,423,488",
	"1,152,921,504,606,846,976",
	"2,305,843,009,213,693,952",
	"4,611,686,018,427,387,904",
	"9,223,372,036,854,775,808",
	"18,446,744,073,709,551,616",
	"36,893,488,147,419,103,232",
	"73,786,976,294,838,206,464",
	"147,573,952,589,676,412,928",
	"295,147,905,179,352,825,856",
	"590,295,810,358,705,651,712",
	"1,180,591,620,717,411,303,424",
	"2,361,183,241,434,822,606,848",
	"4,722,366,482,869,645,213,696",
	"9,444,732,965,739,290,427,392",
	"18,889,465,931,478,580,854,784",
	"37,778,931,862,957,161,709,568",
	"75,557,863,725,914,323,419,136",
	"151,115,727,451,828,646,838,272",
	"302,231,454,903,657,293,676,544",
	"604,462,909,807,314,587,353,088",
	"1,208,925,819,614,629,174,706,176",
	"2,417,851,639,229,258,349,412,352",
	"4,835,703,278,458,516,698,824,704",
	"9,671,406,556,917,033,397,649,408",
	"19,342,813,113,834,066,795,298,816",
	"38,685,626,227,668,133,590,597,632",
	"77,371,252,455,336,267,181,195,264",
	"154,742,504,910,672,534,362,390,528",
	"309,485,009,821,345,068,724,781,056",
	"618,970,019,642,690,137,449,562,112",
	"1,237,940,039,285,380,274,899,124,224",
	"2,475,880,078,570,760,549,798,248,448",
	"4,951,760,157,141,521,099,596,496,896",
	"9,903,520,314,283,042,199,192,993,792",
	"19,807,040,628,566,084,398,385,987,584",
	"39,614,081,257,132,168,796,771,975,168",
	"79,228,162,514,264,337,593,543,950,336",
	"158,456,325,028,528,675,187,087,900,672",
	"316,912,650,057,057,350,374,175,801,344",
	"633,825,300,114,114,700,748,351,602,688",
	"1,267,650,600,228,229,401,496,703,205,376",
	"2,535,301,200,456,458,802,993,406,410,752",
	"5,070,602,400,912,917,605,986,812,821,504",
	"10,141,204,801,825,835,211,973,625,643,008",
	"20,282,409,603,651,670,423,947,251,286,016",
	"40,564,819,207,303,340,847,894,502,572,032",
	"81,129,638,414,606,681,695,789,005,144,064",
	"162,259,276,829,213,363,391,578,010,288,128",
	"324,518,553,658,426,726,783,156,020,576,256",
	"649,037,107,316,853,453,566,312,041,152,512",
	"1,298,074,214,633,706,907,132,624,082,305,024",
	"2,596,148,429,267,413,814,265,248,164,610,048",
	"5,192,296,858,534,827,628,530,496,329,220,096",
	"10,384,593,717,069,655,257,060,992,658,440,192",
	"20,769,187,434,139,310,514,121,985,316,880,384",
	"41,538,374,868,278,621,028,243,970,633,760,768",
	"83,076,749,736,557,242,056,487,941,267,521,536",
	"166,153,499,473,114,484,112,975,882,535,043,072",
	"332,306,998,946,228,968,225,951,765,070,086,144",
	"664,613,997,892,457,936,451,903,530,140,172,288",
	"1,329,227,995,784,915,872,903,807,060,280,344,576",
	"2,658,455,991,569,831,745,807,614,120,560,689,152",
	"5,316,911,983,139,663,491,615,228,241,121,378,304",
	"10,633,823,966,279,326,983,230,456,482,242,756,608",
	"21,267,647,932,558,653,966,460,912,964,485,513,216",
	"42,535,295,865,117,307,932,921,825,928,971,026,432",
	"85,070,591,730,234,615,865,843,651,857,942,052,864",
	"170,141,183,460,469,231,731,687,303,715,884,105,728",
	"340,282,366,920,938,463,463,374,607,431,768,211,456"
};

/* Powers of 2 minus two; hosts in a subnet with this many host bit */
static const char *__cidr_pow2m2[] = {
	"1",			/* Special */
	"2",			/* Special */
	"2",
	"6",
	"14",
	"30",
	"62",
	"126",
	"254",
	"510",
	"1,022",
	"2,046",
	"4,094",
	"8,190",
	"16,382",
	"32,766",
	"65,534",
	"131,070",
	"262,142",
	"524,286",
	"1,048,574",
	"2,097,150",
	"4,194,302",
	"8,388,606",
	"16,777,214",
	"33,554,430",
	"67,108,862",
	"134,217,726",
	"268,435,454",
	"536,870,910",
	"1,073,741,822",
	"2,147,483,646",
	"4,294,967,294",
	"8,589,934,590",
	"17,179,869,182",
	"34,359,738,366",
	"68,719,476,734",
	"137,438,953,470",
	"274,877,906,942",
	"549,755,813,886",
	"1,099,511,627,774",
	"2,199,023,255,550",
	"4,398,046,511,102",
	"8,796,093,022,206",
	"17,592,186,044,414",
	"35,184,372,088,830",
	"70,368,744,177,662",
	"140,737,488,355,326",
	"281,474,976,710,654",
	"562,949,953,421,310",
	"1,125,899,906,842,622",
	"2,251,799,813,685,246",
	"4,503,599,627,370,494",
	"9,007,199,254,740,990",
	"18,014,398,509,481,982",
	"36,028,797,018,963,966",
	"72,057,594,037,927,934",
	"144,115,188,075,855,870",
	"288,230,376,151,711,742",
	"576,460,752,303,423,486",
	"1,152,921,504,606,846,974",
	"2,305,843,009,213,693,950",
	"4,611,686,018,427,387,902",
	"9,223,372,036,854,775,806",
	"18,446,744,073,709,551,614",
	"36,893,488,147,419,103,230",
	"73,786,976,294,838,206,462",
	"147,573,952,589,676,412,926",
	"295,147,905,179,352,825,854",
	"590,295,810,358,705,651,710",
	"1,180,591,620,717,411,303,422",
	"2,361,183,241,434,822,606,846",
	"4,722,366,482,869,645,213,694",
	"9,444,732,965,739,290,427,390",
	"18,889,465,931,478,580,854,782",
	"37,778,931,862,957,161,709,566",
	"75,557,863,725,914,323,419,134",
	"151,115,727,451,828,646,838,270",
	"302,231,454,903,657,293,676,542",
	"604,462,909,807,314,587,353,086",
	"1,208,925,819,614,629,174,706,174",
	"2,417,851,639,229,258,349,412,350",
	"4,835,703,278,458,516,698,824,702",
	"9,671,406,556,917,033,397,649,406",
	"19,342,813,113,834,066,795,298,814",
	"38,685,626,227,668,133,590,597,630",
	"77,371,252,455,336,267,181,195,262",
	"154,742,504,910,672,534,362,390,526",
	"309,485,009,821,345,068,724,781,054",
	"618,970,019,642,690,137,449,562,110",
	"1,237,940,039,285,380,274,899,124,222",
	"2,475,880,078,570,760,549,798,248,446",
	"4,951,760,157,141,521,099,596,496,894",
	"9,903,520,314,283,042,199,192,993,790",
	"19,807,040,628,566,084,398,385,987,582",
	"39,614,081,257,132,168,796,771,975,166",
	"79,228,162,514,264,337,593,543,950,334",
	"158,456,325,028,528,675,187,087,900,670",
	"316,912,650,057,057,350,374,175,801,342",
	"633,825,300,114,114,700,748,351,602,686",
	"1,267,650,600,228,229,401,496,703,205,374",
	"2,535,301,200,456,458,802,993,406,410,750",
	"5,070,602,400,912,917,605,986,812,821,502",
	"10,141,204,801,825,835,211,973,625,643,006",
	"20,282,409,603,651,670,423,947,251,286,014",
	"40,564,819,207,303,340,847,894,502,572,030",
	"81,129,638,414,606,681,695,789,005,144,062",
	"162,259,276,829,213,363,391,578,010,288,126",
	"324,518,553,658,426,726,783,156,020,576,254",
	"649,037,107,316,853,453,566,312,041,152,510",
	"1,298,074,214,633,706,907,132,624,082,305,022",
	"2,596,148,429,267,413,814,265,248,164,610,046",
	"5,192,296,858,534,827,628,530,496,329,220,094",
	"10,384,593,717,069,655,257,060,992,658,440,190",
	"20,769,187,434,139,310,514,121,985,316,880,382",
	"41,538,374,868,278,621,028,243,970,633,760,766",
	"83,076,749,736,557,242,056,487,941,267,521,534",
	"166,153,499,473,114,484,112,975,882,535,043,070",
	"332,306,998,946,228,968,225,951,765,070,086,142",
	"664,613,997,892,457,936,451,903,530,140,172,286",
	"1,329,227,995,784,915,872,903,807,060,280,344,574",
	"2,658,455,991,569,831,745,807,614,120,560,689,150",
	"5,316,911,983,139,663,491,615,228,241,121,378,302",
	"10,633,823,966,279,326,983,230,456,482,242,756,606",
	"21,267,647,932,558,653,966,460,912,964,485,513,214",
	"42,535,295,865,117,307,932,921,825,928,971,026,430",
	"85,070,591,730,234,615,865,843,651,857,942,052,862",
	"170,141,183,460,469,231,731,687,303,715,884,105,726",
	"340,282,366,920,938,463,463,374,607,431,768,211,454"
};

#endif				/* __LIBCIDR__POW2_P_H */
